From 6f9483c434c08e5dbaeec919cddbcb050ab4d2da Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Thu, 21 Aug 2025 19:45:21 +0200 Subject: [PATCH] st/private: Fix texture leak when creating shadow from actor cogl_pipeline_set_layer_texture() adds its own ref to the texture in _cogl_pipeline_set_layer_texture_data() when called via _st_create_shadow_pipeline(), so the initial reference is leaked when the pointer is stolen. Fix this by not stealing the pointer, so autoptr can unref the texture. Before the code was changed to autoptr in 71accdd97 the texture was also manually unrefed after calling _st_create_shadow_pipeline(). Fixes: 71accdd97 ("st: Adapt to CoglObject removal") Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8509 Part-of: --- src/st/st-private.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/st/st-private.c b/src/st/st-private.c index 4df1a4504..78729dd6b 100644 --- a/src/st/st-private.c +++ b/src/st/st-private.c @@ -604,7 +604,7 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec, shadow_pipeline = _st_create_shadow_pipeline (shadow_spec, paint_context, - g_steal_pointer (&buffer), + buffer, resource_scale); } -- 2.39.5